import {
  // 🏷️ 实体装饰器：将类标记为数据库实体，绑定到指定表名
  Entity,
  // 📊 列装饰器：定义数据库列的属性和约束
  Column,
  // 🔑 主键装饰器：自动生成自增主键（MySQL的AUTO_INCREMENT）
  PrimaryGeneratedColumn,
  // ⏰ 创建时间装饰器：自动设置记录创建时间
  CreateDateColumn,
  // 🔄 更新时间装饰器：自动更新记录修改时间
  UpdateDateColumn,
  //   // 🔧 插入前钩子：在数据插入前执行的逻辑
  //   BeforeInsert,
  //   // 🔄 更新前钩子：在数据更新前执行的逻辑
  //   BeforeUpdate,
} from 'typeorm';
// 绑定表
@Entity('admin_user')
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column({ length: 255, nullable: true })
  avatar: string;

  @Column({ length: 50, unique: true })
  username: string;

  @Column({ length: 255 })
  password: string;

  @Column({ length: 50, default: '["admin"]' })
  roles: string;

  @Column({ length: 100, nullable: true })
  nickname: string;

  @Column({ type: 'tinyint', default: 1 })
  active: number;

  // ⏰ 创建时间：自动设置，无需手动处理
  @CreateDateColumn()
  created_at: Date;

  // 🔄 更新时间：自动更新，无需手动处理
  @UpdateDateColumn()
  updated_at: Date;
}
